home *** CD-ROM | disk | FTP | other *** search
- /*****************************************************************************
- *
- * name : conf.c
- * description : load & save prefs file
- * version : 1.1
- *
- * created : 08-03-98
- * last change : 11-04-98
- *
- *****************************************************************************
- */
- #include <dos/dos.h>
- #include <exec/memory.h>
- #include <intuition/intuition.h>
- #include <proto/exec.h>
- #include <proto/dos.h>
- #include <proto/intuition.h>
- #include <string.h>
- #include "utils.h"
- #include "conf.h"
- #include "obp.h"
-
-
-
- void SaveEnv(idWin * prj, BOOL envarc) {
- UBYTE * txtform = NULL ;
- if (!SaveConf(prj, CF_NAMEENV)) {
- /* error during saving
- */
- if (txtform = AllocVec(100, MEMF_PUBLIC|MEMF_CLEAR)) {
- /* open an info request
- */
- strcat(txtform, ERR_ENV) ;
- Fault(prj->lastError, ERR_ENV, txtform, 100) ;
- ez_req("BackClock request", txtform, "Continue", &(prj->lastError)) ;
- FreeVec(txtform) ;
- }
- }
- if (envarc) {
- if (!SaveConf(prj, CF_NAMEENVARC)) {
- /* error during saving
- */
- if (txtform = AllocVec(100, MEMF_PUBLIC|MEMF_CLEAR)) {
- /* open an info request
- */
- strcat(txtform, ERR_ENVARC) ;
- Fault(prj->lastError, ERR_ENVARC, txtform, 100) ;
- ez_req("BackClock request", txtform, "Continue", &(prj->lastError)) ;
- FreeVec(txtform) ;
- }
- }
- }
- }
-
-
- BOOL SaveConf(idWin * prj, UBYTE * fl_name) {
- struct ConfFile cf_save ;
- ULONG file ;
- BOOL ret=FALSE ;
- int i ;
-
- CopyMem("BACK", cf_save.id, 4) ;
- cf_save.posX = prj->backWin.posX ;
- cf_save.posY = prj->backWin.posY ;
- cf_save.lenX = prj->backWin.width ;
- cf_save.lenY = prj->backWin.height ;
- for(i = 0; i<NUM_COLORS; i++)
- CopyMem(&(prj->backWin.cmap[i]), &(cf_save.cmap[i]), sizeof(struct RGB)) ;
-
- if (file = Open(fl_name, MODE_NEWFILE)) {
- Write(file, &cf_save, sizeof(struct ConfFile)) ;
- Close(file) ;
- prj->lastError = OK ;
- ret=TRUE ;
- }else prj->lastError = IoErr() ;
- return ret ;
- }
-
-
- BOOL LoadConf(idWin * prj) {
- /* Reload configuration file
- */
- struct ConfFile cf_load ;
- ULONG file ;
- BOOL ret = FALSE ;
- int i ;
-
- if (file = Open("ENV:backclock.prefs", MODE_OLDFILE)) {
- Read(file, &cf_load, sizeof(struct ConfFile)) ;
- prj->backWin.posX = cf_load.posX ;
- prj->backWin.posY = cf_load.posY ;
- prj->backWin.width = cf_load.lenX ;
- prj->backWin.height = cf_load.lenY ;
- for(i = 0; i < NUM_COLORS; i++)
- CopyMem(&(cf_load.cmap[i]), &(prj->backWin.cmap[i]), sizeof(struct RGB)) ;
- initColors(prj) ;
- ret = TRUE ;
- prj->lastError = OK ;
- Close(file) ;
- }else {
- prj->lastError = IoErr() ;
- prj->backWin.posX = 0 ;
- prj->backWin.posY = 0 ;
- prj->backWin.width = 100 ;
- prj->backWin.height = 100 ;
- prj->backWin.cmap[COL_SEC].reg = (UBYTE)getPen(prj, 0, 100, 200) ;
- prj->backWin.cmap[COL_MIN].reg = (UBYTE)getPen(prj, 0, 0, 0) ;
- prj->backWin.cmap[COL_HEU].reg = (UBYTE)getPen(prj, 0, 0, 0) ;
- prj->backWin.cmap[COL_TIC].reg = (UBYTE)getPen(prj, 0, 0, 0) ;
-
- }
- return(ret) ;
- }